import { defineStore } from "pinia";

// 定义一个模块化的小仓库
// defineStore方法接收两个参数,第一个参数是模块名称,第二个参数是仓库的配置
// defineStore返回的是 一个函数,当函数调用时,才能拿到内部的内容
const useCountState = defineStore("count",{
    state:()=>{
        return {
            num:0,
        };
    },
    actions:{
        // actions中的方法是用来修改数据的,接收的参数是调用这个方法是时传递的参数
        increment(){
        // actions方法内部使用this拿到state数据修改
        this.num++
        },
        incrementN(n:number){
            // actions方法内部使用this拿到state数据修改
            this.num+=n
            }
    
    },
    getters:{
        // 在getters中需要限制返回值类型
        doubleNum():number{
            return this.num*2
        }
    }
})

export default useCountState